Docker,今年開始竄紅的一項工具技術。如果用Maven來比較,Maven能透過設定,幫我們佈建專案複雜的過程。Docker就是再更上一層,可以到安裝平台、安裝軟體軟體及設定。
Docker,不扣不折的懶人包生成工具。
本篇同步發表於:http://www.gibar.co/2014/10/Installation-Jenkins-on-Docker.html (好讀版)
本系列的目標,是介紹Jenkins Slave,並使用Docker來建立Slave。開始前,我們必需先有一套Docker!
使用Docker安裝官方版本的Jenkins
Docker的套件內容,必需安裝EPEL才讀取的到,而CentOS 7 以前,安裝的Docker 套件名稱是 docker-io 在CentOS7開始才是 docker。別裝錯囉!
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
sudo rpm -Uvh epel-release-6*.rpm
sudo yum -y install docker-io*
sudo service docker start
sudo chkconfig docker on
以上的指令,前兩行是取得EPEL的套件支援,三四行是安裝docker及啟動,最未行是設定開機時自動啟動docker。如果你的作業系統不是CentOS,也可以參考Docker官方的安裝教學。
使用 pull 指令,從docker hub 取回官方版本的Jenkins,建議指定版本 1.565.3。pull 的過程會需要點時間。
sudo docker pull jenkins:1.565.3
Docker內的Jenkins只是個容器,本身是不應該存放任何動態產生的設定或是資料,先建立Docker容器外的目錄,用以存放Jenkins所產生的設定及資料。在CentOS + Jenkins官方的版本中,預設的user id 是 1000。
mkdir /home/jenkins_dir
chown 1000:docker /home/jenkins_dir
啟動Jenkins吧!
docker run -p 8080:8080 -v /home/jenkins_dir:/var/jenkins_home jenkins:1.565.3
燒燙燙的Jenkins立刻就啟動囉!
這篇主角不是Jenkins,是Docker!
docker pull NAME[:TAG]
docker pull jenkins:1.565.3<span style="color:#A9A9A9"> </span>
一個開我們使用的pull指令,是讓docker去下載一個指定的來源(NAME)。並指定來源的版本(TAG),但這是選填的,如果沒有指定版本,預設會使用最新的來源(lastest)
目前Jenkins官方釋出的Docker版本,可以在此網址中的TAG項目裡找到清單 https://registry.hub.docker.com/_/jenkins/tags/manage/
docker images NAME
docker images jenkins
docker images 指令可以查詢目前已pull回來的image的清單及簡易的資訊內容,如下圖
docker run -p 8080:8080 -v /home/jenkins_dir:/var/jenkins_home jenkins:1.565.3
docker run 啟動一個docker container! 最後一個參數為指定的images
Docker 運作的原理,大至上是先有一個平台(FROM),然後記下所有安裝過程的指令,成為一個DockerFile,也就是本篇看到的『jenkins:1.565.3』。這意味著,我們可以將Jenkins安裝的過程,包含套件等,打包成一個DockerFile,就可以讓所有安裝Jenkins 主機省去設定的煩腦。更新,也只要更新DockerFile。Docker這個想法與Jenkins的設計一拍即合,特別是Jenkins-slave。
在將Docker與Jenkins-slave整合前,是應該先好好的認識一下Jenkins-slave是在做什麼事。
下一篇:Slave - Jenkins 的奴役制度,主人我準備好上工了 (中)
本篇同步發表於:http://www.gibar.co/2014/10/Installation-Jenkins-on-Docker.html (好讀版)
Reference